Make downstream tests conditional on fast tests passing - #965
Merged
Conversation
Downstream projects each take up to 10 minutes and are only informative when traitlets itself is healthy, but they were running in parallel with the regular test suite on every push and pull request. GitHub Actions has no cross-workflow `needs`, so turn downstream.yml into a reusable `workflow_call` workflow and invoke it from tests.yml behind the fast jobs (tests, minimum versions, lint, docs, prereleases, sdist). Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SQAvW1A6CBxpneLgjm4qJu
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Refactored the downstream project testing workflow to run only after all fast test jobs have completed successfully, reducing unnecessary CI runner usage when the main test suite fails.
Key Changes
.github/workflows/tests.ymlto add a newdownstreamjob that depends on all fast test jobs (tests,test_minimum_versions,test_lint,test_docs,test_prereleases,test_sdist).github/workflows/downstream.ymlfrom a standalone workflow triggered on push/pull_request to a reusable workflow called viaworkflow_callon: pushandon: pull_requesttriggers fromdownstream.ymlconcurrencyconfiguration fromdownstream.yml(no longer needed for a called workflow)Implementation Details
The downstream workflow is now invoked as a reusable workflow from the main tests workflow, ensuring it only runs after all prerequisite fast tests pass. This prevents wasting CI runner resources on downstream project testing when traitlets itself has test failures.
https://claude.ai/code/session_01SQAvW1A6CBxpneLgjm4qJu